package com.agile.leetcode.hutool.uniqueid;

import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.net.NetUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import org.junit.Test;

/**
 * 胡图提供的生成唯一id的三种方式
 *
 * @Author KD
 * @Date 2021/1/8 16:37
 */
public class UniqueIdDemo {
    /**
     * uuid
     */
    @Test
    public void uuid() {
        // 生成普通的uuid
        String s = IdUtil.randomUUID();
        System.out.println(s);
        // 生成不带-的uuid
        String s1 = IdUtil.simpleUUID();
        System.out.println(s1);
    }

    /**
     * 生成mogodb的唯一id
     */
    @Test
    public void objectId(){
        System.out.println(NetUtil.getLocalhostStr());
        System.out.println(NetUtil.ipv4ToLong(NetUtil.getLocalhostStr()));
        String s = IdUtil.objectId();
        System.out.println(s);
        Integer i=3;
        System.out.println(ObjectUtil.isBasicType(i));
    }
    /**
     * 雪花算法id
     */
    @Test
    public void snowflake(){
        // arg1 机房id
        // arg2 数据中心id
        Snowflake snowflake = IdUtil.getSnowflake(1, 1);
        System.out.println(snowflake.nextId());
    }
}
